#include "Jugador.h"
#include "CartaDeObjetivos.h"
#include "Conquista.h"
#include "Eliminacion.h"

Jugador::Jugador() {
	ejercitos = 0;
	this->cartaDeObjetivos = NULL;
}

Jugador::Jugador(string nombre, string color)
{
	ejercitos = 0;
	this->color = color;
	this->nombre = nombre;
	this->cartaDeObjetivos = NULL;
}

string Jugador::getColor() {
	return this->color;
}

string Jugador::getNombre() {
	return nombre;
}

void Jugador::setColor(string color) {
	this->color = color;
}

void Jugador::setNombre(string nombre) { 
	this->nombre = nombre;
}

void Jugador::asignarEjercitos(unsigned int cantidadDeEjercitos) {
	ejercitos += cantidadDeEjercitos;
}

void Jugador::setEjercitos(unsigned int cantidadDeEjercitos) {
	this->ejercitos = cantidadDeEjercitos;
}

unsigned int Jugador::getCantidadDeEjercitos() {
	return ejercitos;
}

void Jugador::quitarEjercitos(unsigned int cantidadDeEjercitos) {
	ejercitos -= cantidadDeEjercitos;
}

CartaDeObjetivos* Jugador::getCartaDeObjetivos() {
	return this->cartaDeObjetivos;
}

void Jugador::setCartaDeObjetivos(CartaDeObjetivos* carta) {
	if (dynamic_cast<Conquista*>(carta) != 0) {
		Conquista* conquista = dynamic_cast<Conquista*>(carta);
		this->cartaDeObjetivos = new Conquista(conquista->getContinente(),conquista->getTerritoriosAdicionales());
		this->cartaDeObjetivos->jugador = this;
	}
	else if (dynamic_cast<Eliminacion*>(carta) != 0) {
		Eliminacion* eliminacion = dynamic_cast<Eliminacion*>(carta);
		this->cartaDeObjetivos = new Eliminacion(eliminacion->getJugadorAEliminar());
		this->cartaDeObjetivos->jugador = this;
	}
		
}

Jugador::~Jugador()
{
}
